import java.util.Scanner;
import java.util.*;
public class Main {
    /*给你一个下标从 0 开始的数组 nums ，数组中的元素都是 正 整数。
    请你选出两个下标 i 和 j（i != j），且 nums[i] 的数位和 与  nums[j] 的数位和相等。
    请你找出所有满足条件的下标 i 和 j ，找出并返回 nums[i] + nums[j] 可以得到的 最大值。
    如果不存在这样的下标对，返回 -1。*/
    public static int seek(int[] nums) {
        int n=nums.length;
        int result=-1;
        int[] arr=new int[82];//数据范围为1e9,数位和最大为81
        for(int nu:nums){
            int x=0;
            //计算数位和
            for(int i=nu;i>0;i/=10){
                x+=i%10;
            }
            //如果当前数位和出现第二次
            if(arr[x]>0){
                //更新结果
                result=Math.max(result,arr[x]+nu);
            }
            //更新数位和的最大值，arr[x]记录上一个数位和值
            arr[x]=Math.max(arr[x],nu);
        }
        return result;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=sc.nextInt();
        }
        int result=seek(nums);
        System.out.println(result);
    }
}